package com.xmmj.baselibrary.utils

import android.app.Activity
import android.content.Context
import com.tencent.bugly.Bugly
import com.tencent.bugly.beta.Beta

/**
 * Bugly配置工具类：
 * 版本升级、错误日志收集
 *
 *  注意事项：
 * 需要在AndroidManifest.xml中，添加如下申明：
 *<activity
 *  android:name="com.tencent.bugly.beta.ui.BetaActivity"
 *  android:configChanges="orientation|keyboardHidden|screenSize"
 *  android:screenOrientation="portrait"
 *  android:theme="@android:style/Theme.Translucent" />
 */
object Bugly {

    /**
     * 初始化Bugly，建议放在Application中
     *
     * @param context    上下文
     * @param appId      应用对应的 bugly appId
     * @param logoIconId logo图片的id
     */
    fun initDefault(context: Context, appId: String?, logoIconId: Int) {
        //启动自动初始化升级模块（如果担心sdk初始化影响app启动速度，可以设置为false，
        //在后面某个时刻手动调用Beta.init(getApplicationContext(), false)）
        Beta.autoInit = true

        //初始化时自动检测升级
        Beta.autoCheckUpgrade = true

        //设置升级检查周期为5分钟
        Beta.upgradeCheckPeriod = (5 * 60 * 1000).toLong()

        //设置启动延时为2s（默认为3s），避免影响app启动速度
        Beta.initDelay = (2 * 1000).toLong()

        //设置通知栏大图标
        Beta.largeIconId = logoIconId

        //设置通知栏小图标
        Beta.smallIconId = logoIconId

        //设置更新弹窗默认展示的banner
        Beta.defaultBannerId = logoIconId

        //设置Wifi下不自动下载
        Beta.autoDownloadOnWifi = false

        //设置不显示消息通知
        Beta.enableNotification = false

        //初始化统一接口
        Bugly.init(context.applicationContext, appId, false)
    }

    /**
     * 设置允许显示更新弹窗的Activity
     *
     * @param activity Activity集合
     */
    fun setCanShowUpgradeActivity(vararg activity: Class<out Activity?>?) {
        if (activity.isNotEmpty()) Beta.canShowUpgradeActs.addAll(listOf(*activity))
    }

    /**
     * 检测版本更新
     */
    fun checkUpdate() {
        //参数1：是否需要用户手动点击检查，参数2：是否显示吐司提示
        Beta.checkUpgrade(false, false)
    }
}